package edu.tsinghua.oxy.common.repository;

import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.Set;

/**
 * Redis的操作接口
 *
 * @author sean
 * @date 2021 - 07 - 29 上午10:54
 */
@Repository
public interface IBaseRedisRepository {

    void setKey(String key, String value);

    String getValue(String key);

    /**
     * Set的增加
     * @param key
     * @param value
     */
    void sadd(String key, String ... value);
    /**
     * Set的增加
     * @param key
     * @param value
     */
    void sadd(String key, Collection<String> value);

    /**
     * Set的pop
     * @param key
     * @return
     */
    String spop(String key);

    /**
     * Set中随机返回一个元素，不删除
     * @param key
     * @return
     */
    String srandmember(String key);

    /**
     * 获取Set的所有成员
     * @param key
     * @return
     */
    Set<String> smembers(String key);

    /**
     * 根据Key删除
     * @param key
     * @return
     */
    void del(String ... key);

    /**
     * 自增
     * @param key
     * @return
     */
    Long incr(String key);
}

